"""
特征工程是把原始数据转换为更适合机器学习模型输入的形式
而特征提取是将 文本/图片等数据转换为 数字特征
机器学习本质是数学公式的统计计算，所以需要数字特征
字典特征提取用于像一些数据集，特征比较多，可以把特征转化为字典，然后进行特征提取
或者本身拿到的数据就是字典类型
"""
from sklearn.feature_extraction import DictVectorizer

data = [{'city':'扬州', 'temperature':27},
        {'city':'重庆', 'temperature':35},
        {'city':'成都', 'temperature':34},
        {'city':'上海', 'temperature':28}]

# 实例化特征提取器
transfer = DictVectorizer(sparse=False)
# 调用fit_transform方法
data_new = transfer.fit_transform(data)

# 查看结果
print(data_new)
"""
数值型：直接保留
类别型： one-hot编码
"""
print("特征名：\n", transfer.get_feature_names_out())


# 可转换回原数据
print("用inverse转换为原数据后：\n", transfer.inverse_transform(data_new))